Many business enterprises use computer systems to monitor and process business activities and transactions. Business entities that handle complex transactions and activities, in particular, often employ distributed computer systems.
Conventional database systems and business data processing algorithms emphasize a passive repository storing a large collection of data elements and perform human initiated queries and transactions on such repository. Such conventional technology emphasizes the importance of the current state of the data. Hence, current values of the data elements can be easy to obtain, while previous values can only be found by decoding database log files. Such conventional technology also treats notifications and triggers with low priority, and these constructs are added mostly as an after thought to the current systems. Conventional technology also assumes that data elements are synchronized and that queries have exact answers. In many stream-oriented applications, data arrives asynchronously and answers must be computed with incomplete information.
There is a substantial class of applications where data takes the form of continuous data streams rather than finite stored data sets, and where clients require long-running continuous queries rather than one-time queries. This class of applications include network monitoring, telecommunication data management, sensor networks, manufacturing, and others. The traditional database systems and business data processing algorithms are not well equipped to support these kinds of applications. Business enterprises implement event processing systems including event processors to support these kinds of applications.